<?php
	require_once( '../_config/base.inc.php' );
	
	use \dayscript\Application;
	use \dayscript\util\Benchmark;
	use \dayscript\filesystem\DirectorySystem;
	use \dayscript\filesystem\FileSystem;
	use \dayscript\filesystem\DirectorySystemManager;
	use \dayscript\filesystem\FileSystemManager;
	
	Application::getInstance( BASE_DIR . '_config/tests.inc.php' );

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>DirectorySystem</title>
<link rel="stylesheet" type="text/css" media="all"
	href="../_resources/styles.css" />
</head>
<body>
<pre>
<b>Escribir, leer y borrar un directorio:</b>
<br />
<?php

	// Instanciar el objeto que respresenta al directorio
	$directory = new DirectorySystem("test/test1");
	
	// Borrar todo
	if($directory->exists()){
		DirectorySystemManager::deleteContent($directory);
	}
	
	// Crear todo el path
	$file = new FileSystem($directory->getName()."/test2", FileSystem::MODE_ONLY_READ_B_NC);
	FileSystemManager::createCompletePath($file, false);
	
	// Crear el directorio si no existe
	if(!$directory->exists()){
		DirectorySystemManager::create($directory);
	}
	
	// Crear un archivo dentro del nuevo directorio y escribir en el mismo
	$file1 = new FileSystem($directory->getName()."/prueba2.txt", FileSystem::MODE_READ_WRITE_B_C);
	FileSystemManager::open($file1);
	FileSystemManager::write($file1, "archivo de prueba");
	FileSystemManager::close($file1);
	
	// Crear otro archivo dentro del nuevo directorio y escribir en el mismo
	$file2 = new FileSystem($directory->getName()."/prueba3.txt", FileSystem::MODE_READ_WRITE_B_C);
	FileSystemManager::open($file2);
	FileSystemManager::close($file2);
	
	// Abrir el directorio para leerlo
	DirectorySystemManager::open($directory);
	
	// Leer uno a uno los archivos o directorios dentro del directorio
	echo "Archivos dentro del directorio: <br />";
	while(false !== ($tmp = DirectorySystemManager::read($directory->getHandle()))){
		echo $tmp . ", ";
	}
	
	// Cerrar directorio
	DirectorySystemManager::close($directory);
	
	// Leer todo el directorio en un array, no es necesario abrirlo
	$files = DirectorySystemManager::readComplete($directory);
	echo "<br />";
	print_r($files);
	
	// Borrar todo el contenido del directorio pero sin borrar la carpeta como tal
	DirectorySystemManager::deleteContent($directory, "/(.*)3(.*)/i");
	
	// Leer todo el directorio en un array, no es necesario abrirlo
	$files = DirectorySystemManager::readComplete($directory);
	echo "<br />";
	print_r($files);
	
	// Borrar ahora si el directorio si esta vacio
	if($directory->isEmpty()){
		DirectorySystemManager::delete($directory);
	}
?>
<br />
<b>Benchmark:</b><?php echo Benchmark::getInstance( ) ?>
</pre>
</body>
</html>
